/**
 * Word编辑器相关类型定义
 */

/**
 * 文档转换结果接口
 * 功能：定义文档转换后的结果结构
 */
export interface DocumentConversionResult {
  /** HTML内容 */
  html: string
  /** 转换消息和警告 */
  messages: Array<{
    type: 'warning' | 'error' | 'info'
    message: string
  }>
  /** 是否转换成功 */
  success: boolean
}

/**
 * 文档信息接口
 * 功能：定义文档的基本信息
 */
export interface DocumentInfo {
  /** 文件名 */
  name: string
  /** 文件大小（字节） */
  size: number
  /** 文件类型 */
  type: string
  /** 最后修改时间 */
  lastModified: number
}

/**
 * 编辑器配置接口
 * 功能：定义编辑器的配置选项
 */
export interface EditorConfig {
  /** 是否启用编辑模式 */
  editable: boolean
  /** 是否显示工具栏 */
  showToolbar: boolean
  /** 最大文件大小（MB） */
  maxFileSize: number
  /** 支持的文件类型 */
  supportedTypes: string[]
}

/**
 * 打印配置接口
 * 功能：定义打印时的配置选项
 */
export interface PrintConfig {
  /** 页面边距 */
  margin: {
    top: string
    right: string
    bottom: string
    left: string
  }
  /** 字体设置 */
  font: {
    family: string
    size: string
  }
  /** 是否显示页眉页脚 */
  showHeaderFooter: boolean
}

/**
 * 文档转换器类型枚举
 * 功能：定义支持的文档转换器类型
 */
export enum ConverterType {
  /** Mammoth.js转换器 */
  MAMMOTH = 'mammoth',
  /** docx-preview转换器 */
  DOCX_PREVIEW = 'docx-preview'
}

/**
 * 错误类型枚举
 * 功能：定义可能出现的错误类型
 */
export enum ErrorType {
  /** 文件格式不支持 */
  UNSUPPORTED_FORMAT = 'unsupported_format',
  /** 文件过大 */
  FILE_TOO_LARGE = 'file_too_large',
  /** 转换失败 */
  CONVERSION_FAILED = 'conversion_failed',
  /** 网络错误 */
  NETWORK_ERROR = 'network_error'
}

/**
 * 编辑器错误接口
 * 功能：定义编辑器错误的结构
 */
export interface EditorError {
  /** 错误类型 */
  type: ErrorType
  /** 错误消息 */
  message: string
  /** 错误详情 */
  details?: any
}